Internet Protocol version 4 (IPv4) utilizes a 32-bit representation for network addresses (e.g., IP addresses), thus allowing about 4 billion hosts to be connected in a single network. As big as this number may be, it is still a finite number. While depletion of the IP public addresses pool has been foreseen since the late 1980s (as the Internet started to grow at an accelerating rate), the shortage in available public IP addresses has reached critical levels during the last few years.
Over the years, several methods have been developed and adopted in order to postpone the complete exhaustion of the public IP addresses pool and to allow more hosts to be connected to the Internet using the finite range of public IP addresses. Of those methods, perhaps the most known and widely accepted were Network Address Translation (NAT) and Classless Inter-Domain Routing (CIDR).
A private network is a network that, by design, cannot be accessed from the Internet. A private network can contain many hosts. NAT allows a private network to be connected to a public network, such as the Internet, using one or more (typically, relatively few compared to the number of private IP addresses used in the private network) public IP addresses by means of translating between the public IP address(es) and the private IP addresses used in the private network. Using NAT, organizations, small offices, and even residential users do not need to get publicly routable IP addresses from their respective Internet Service Providers (ISPs) for each host or network device in their networks. Instead, an ISP can allocate a single IP address for each such network and preserve its pool of public IP addresses for servicing more customers.
While use of NAT has unquestionably postponed the exhaustion of public IP addresses, it came at a price. The model of NAT is fundamentally one of asymmetric data access, i.e., accessing the Internet from the private network but not the other way around. This asymmetric data access model interferes with one of the fundamental principles of the Internet (i.e., the end-to-end principal), and this failure to adhere to the Internet architecture results in problems at the application level. For example, applications that depend on IP addresses, such as File Transfer Protocol (FTP), Voice over Internet Protocol (VoIP), and Internet Protocol Security (IPsec), often fail when NAT is used. Though it is possible to use application-layer gateways (ALG) to repair the damage done by NAT and to allow such applications to operate even when NAT is used, use of these ALGs makes it more difficult to deploy new Internet applications (e.g., the ALGs may have to be upgraded or replaced).
The second method previously mentioned, as one which helped in postponing the complete exhaustion of the public IP addresses pool, is Classless Inter-Domain Routing (CIDR), which is a method for allocating IP addresses and routing IP packets. The Internet Engineering Task Force (IETF) introduced CIDR in 1993 to replace the previously used addressing architecture in the Internet, which was based on classes. CIDR is based on variable-length subnet masking (VLSM), thus allowing a network to be divided into differently sized subnets. In practice, CIDR determines the network size, i.e., the number of IP addresses available for use in the network. FIG. 4 shows a table 400 with several subnet masks and their corresponding network sizes. The notation “/N” defines the number (N) of leftmost bits in the subnet mask which are set to “1” while all the remaining bits, which correspond to the “host bits”, are set to “0.”
In practice, the “host all zeros” address is reserved for referring to the entire subnet and the “host all ones” address is used as a broadcast address in the given subnet. Thus the maximum number of hosts in each subnet equals the number of IP addresses in the subnet less 2. Consequently /31 networks (i.e., subnets) are rarely used, as the only possible addresses on a /31 network are the “host all ones” and the “host all zeros” addresses. For the same reasons, the smallest network which behaves “as expected,” i.e., as a larger network, is a /30 network. Out of 4 IP addresses in a /30 network, only 2 addresses are usable for hosts and thus a /30 network is usable only as a point-to-point link (or “Glue Network”).
A /30 network, however, is a wasteful network in terms of IP addresses utilization. For example, for connecting a host to the Internet via a router but without using NAT, the smallest network that can be used between the host and the router is a /30 network. The hosts gets a public IP address, but 3 additional public IP addresses are wasted, i.e., the network address (“host all zeros”), the broadcast address (“host all ones”) and the host address the router is using. This brings the efficiency of network addresses utilization to only 25%. FIG. 1 shows network 100, which is a /16 network utilizing the IP address range of 20.20.x.x/16 (i.e., a total of 65,536 addresses). Even if the owner of network 100 wants to allocate only one IP address to each user, using a /30 subnet per user results in allocating 4 IP addresses per user and thus servicing only 16,384 users instead of 65,536 users.
One method for resolving the wastefulness of /30 networks and to enable use of all IP addresses as host addresses (i.e., to achieve 100% efficiency) is to use /32 networks and allocate a /32 mask for each host. FIG. 2 shows network 200, which is a /16 network utilizing the IP address range of 20.20.x.x/16 (i.e., a total of 65,536 addresses). Unlike network 100, however, network 200 uses a /32 subnet per user. Thus, each user is allocated a single IP address and the network can service 65,536 users. Configuring a host with a /32 mask, however, results in the host being all alone in its own network, i.e., it cannot communicate using IP with the router on the other side of the link. Therefore, network 200 uses the Point-to-Point Protocol (PPP), a data link (layer 2) protocol commonly used for establishing direct connectivity between two networking nodes.
FIG. 3 shows wireless IP communication network 300. Network 300 is composed of hub 310 (e.g., a border router) and customer premises equipment (CPE) terminals (or routers) 320a-n that communicate over a wireless medium. As an IP network, every entity in network 300 utilizes a dedicated IP address. As network 300 is connected to an external network (e.g., via hub 310), such as the Internet, network 300 has to be assigned public IP addresses in order to enable end-to-end IP connectivity between nodes connected to network 300 and nodes outside network 300. As hub 310 and CPE terminals 320a-n are each an independent router, in case each CPE terminal 320a-n supports a single host 330a-n respectively, /30 subnets are used and network 300 utilizes public IP addresses at 25% efficiency.
Assuming that use of NAT and PPP (or any other encapsulation or tunneling method) is not desired, another method is required for improving IP addresses utilization efficiency while maintaining end-to-end IP connectivity in a network similar to network 300.